// pages/songDetail/songDetail.js
import request from '../../../utils/request'
import PubSub from 'pubsub-js'
import moment from 'moment'
Page({
      // 按钮的播放或暂停状态
  handlerPlayOrPause() {
    // this.setData({
    //   isPlay: !this.data.isPlay
    // })
    const isPlay = !this.data.isPlay
    this.setData({
      isPlay
    })
    //单击播放按钮，实现播放与暂停
    if(isPlay){
      this.player.play()
    }else{
      this.player.pause()
    }
  },
  //获取歌曲详情信息
  async getSongInfoData(){
    const result = await request({
      url:'/song/detail',
      data:{
      ids:this.data.songId
      }
    })
    if(result.code===200){
      this.setData({
        songInfo:{
        singer:result.songs[0].ar[0].name,
        songPicUrl:result.songs[0].al.picUrl
        }
      })
      wx.setNavigationBarTitle({
        title:result.songs[0].name
      })
    }
  },
  //获取歌曲播放链接地址
  async getSongUrl(){
    const{songId:id}=this.data
    const result = await request({
      url:'/song/url',
      data:{
        id
      }
    })
    // console.log('555',result);
    if(result.code===200){
      this.setData({
        songUrl:result.data[0].url
      })
      // console.log('444',songUrl);
    }
  },
  //切换歌曲，上一首下一首的按钮播放
  handlerSwitch(event){
    const type = event.target.id
    //发布
    PubSub.publish('type',type)
  },
 
  /**
   * 页面的初始数据
   */
  data: {
     isPlay: false,
     songId:'',
     songUrl:'',
     songInfo:{
       singer:'', //歌手名称
       songPicUrl:'', //歌曲图片
     },
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    const songId = options.songId
    this.setData({
      songId,
      isPlay:true
    })
  
    //歌曲详情
   await this.getSongInfoData()
    //歌曲播放链接
    await this.getSongUrl()
    //创建音频播放器
    this.player = wx.getBackgroundAudioManager()
    this.player.src = this.data.songUrl
    this.player.title = this.data.songInfo.singer
    //控制系统按钮和自身按钮播放统一
    this.player.onPlay(()=>{
      this.setData({
        isPlay:true
      })
      
    })
    this.player.onPause(()=>{
      this.setData({
        isPlay:false
      })
    })
    //歌曲播放完成后，自动播放下一首
    this.player.onEnded(()=>{
      PubSub.publish('type','next')
    })
    //订阅 接收songId
    PubSub.subscribe('songId',async(_,songId)=>{
      this.setData({
        songId,
        isPlay:true
      })
       //获取歌曲详情信息
       await this.getSongInfoData()

       //获取歌曲播放链接 
       await this.getSongUrl()
 
       //设置音频的播放
       this.player = wx.getBackgroundAudioManager()
       this.player.src = this.data.songUrl
       this.player.title = this.data.songInfo.singer
    })
    //检测播放的进度
      this.player.onTimeUpdate(()=>{
        this.setData({
          currentTime:moment(this.player.currentTime*1000).format('mm:ss'),
          duration:moment(this.player.duration*1000).format('mm:ss'),
          progressWidth: this.player.currentTime*450/this.player.duration + 'rpx'
        })
      })
  
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})